Traditional backup systems may periodically create a full backup by capturing all allocated blocks (e.g., sectors or clusters) of a volume. Between full backups, a backup system may capture intermediate backups, referred to as incremental backups, which include blocks that have changed since the previous incremental or full backup. An incremental backup may be orders of magnitude smaller and faster than a full backup.
Unfortunately, some traditional backup technologies are not designed to effectively deal with long (or even short) chains of incremental backups. For example, some traditional backup systems may restore a volume (or any other backed-up entity) by opening and reading each backup in the entire chain of backups, including each incremental backup and a base backup (i.e., a full backup). An administrator may not be able to delete any of the backups until none of the backups in the chain are needed for possible restoration.
As an alternative to long chains of incremental backups, synthetic backups may be created at an intermediate point in a backup chain to allow older points in the chain to be deleted and to keep chain lengths short enough for efficient restoration. However, synthetic backup creation may involve significant back-end processing to move data from incremental backups to full backups. What is needed therefore is a more efficient and effective way to manage backup data.